package cn.itcast.dao;

import cn.itcast.pojo.Role;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleDao {


  /*  *//**
     * 保存用户基本信息
     *
     * @param role
     *//*
    void add(Role role);

    *//**
     * 条件查询用户信息
     *
     * @param queryString
     * @return
     *//*
    Page<Role> selectByCondition(String queryString);

    *//**
     * 根据用户id查询用户信息
     *
     * @param id
     * @return
     *//*
    Role findById(Integer id);


    *//**
     * 根据Id更新用户基本信息
     *
     * @param role
     *//*
    void update(Role role);


    *//**
     * 根据id删除用户信息
     *
     * @param id
     *//*
    void deleteById(Integer id);

    *//**
     * 查询所有角色数据
     *
     * @return
     *//*
    List<Role> findAll();


    *//**
     * 查询角色下的菜单ID集合
     *
     * @param roleId
     * @return
     *//*
    Integer[] findMenuAssociationIds(Integer roleId);

    *//**
     * 查询角色下的权限ID集合
     *
     * @param roleId
     * @return
     *//*
    Integer[] findPermissionAssociationIds(Integer roleId);

    *//**
     * 设置角色和菜单的关联信息
     *
     * @param roleId
     * @param menuId
     *//*
    void setMenuAssociation(@Param("roleId")Integer roleId, @Param("menuId")Integer menuId);

    *//**
     * 设置角色和权限的关联信息
     *
     * @param roleId
     * @param permissionId
     *//*
    void setPermissionAssociation(@Param("roleId")Integer roleId, @Param("permissionId")Integer permissionId);

    *//**
     * 删除用户关联权限信息
     *
     * @param id
     *//*
    void deletePermissionAssociation(Integer id);

    *//**
     * 删除用户关联菜单信息
     *
     * @param id
     *//*
    void deleteMenuAssociation(Integer id);

    *//**
     * 查询该角色是否被用户引用
     *
     * @param id
     * @return
     *//*
    int selectRoleReferencedCount(Integer id);

    *//**
     * 查询角色关键词
     * @param id 角色id
     * @return
     *//*
    String findKeywordById(Integer id);*/





    //根据条件查询检查项
    Page<Role> selectByCondition(String queryString);

    //添加角色
    void add(Role role);

    //添加角色——权限列表信息
    void setPermissionId(@Param("roleId") Integer roleId, @Param("permissionId") Integer permissionId);
    //添加角色——菜单列表信息
    void setMenuId(@Param("roleId") Integer roleId, @Param("menuId") Integer menuId);
    //删除角色
    void deleteById(Integer id);
    //删除角色对应菜单列表
    void deleteRoleMenu(Integer id);
    //删除角色对应权限列表
    void deleteRolePermission(Integer id);
    //根据角色id查询角色
    Role findByRoleId(Integer id);

    //根据角色id查询菜单id
    Integer[] findMenuIdsByRoleId(Integer id);

    //根据角色id查询权限id
    Integer[] findPermissionIdsByRoleId(Integer id);

    //修改角色信息
    void update(Role role);

    //查询所有角色信息
    List<Role> findAll();

    /**
     * 查询角色关键词
     * @param id 角色id
     * @return
     */
    String findKeywordById(Integer id);


}
